package com.practice.niuke.new_direct_basics.class03;

import java.util.Arrays;
import java.util.Comparator;

/**
 * 比较器的使用
 */
public class Code03_Comparator2 {

	// 比较器在java中叫做比较器，在c/c++中叫做“重载比较运算符”

	// 对于任意的比较器，首先需要指定两个对象，o1, o2
	// 返回值有统一的规范:
	// 返回负数时：认为o1应该排在o2的前面；
	// 返回正数时：认为o2应该排在o1的前面；
	// 返回0时：谁排在前面都可以。

	public static class MyComp implements Comparator<Integer>{

		// 如果返回负数，认为第一个参数应该拍在前面
		// 如果返回正数，认为第二个参数应该拍在前面
		// 如果返回0，认为谁放前面都行
		@Override
		public int compare(Integer o1, Integer o2) {

//			if (o1 > o2){
//				return -1;
//			}
//			if (o2 > o1){
//				return 1;
//			}
//			return 0;
			// 由大到小的比较器
			return o2 - o1;
			// 由小到大的比较器
			// return o1 - o2;
		}
		
	}
	

	public static void main(String[] args) {
		Integer[] arr = {6, 0, 4, 1, 9, 2};
		Arrays.sort(arr, new MyComp());
		for (int item: arr) {
			System.out.println(item);
		}
		System.out.println();
	}

}
